.progress-bar {
    display: flex;
    width: 100%;
    height: 4rem;
    line-height: 4rem;
    align-items: center;
}

.progress-time {
    display: flex;
    justify-content: center;
    width: 5rem;
    height: 100%;
    color: #f4f3f2;
}

.progress-controls {
    display: flex;
    position: relative;
    align-items: center;
    flex: 1;
    height: 4rem;
    line-height: 4rem;
    margin: 0;
}
.progress-controls.video {
    height: 1rem;
    line-height: 1rem;
    margin: 0;
}
.progress-controls .bar {
    position: relative;
    width: 100%;
    height: .2rem;
    border-radius: .1rem;
    background-color: #f4f3f2;
}
.progress-controls.video .bar {
    background-color: #454443;
}
.progress-controls .dot-button {
    position: absolute;
    display: flex;
    align-items: center;
    height: 100%;
    width: 4rem;
    top: 0;
    left: -2rem;
    justify-content: center;
    z-index: 100;
}

.progress-controls.video .dot-button .dot {
    width: .5rem;
    height: .5rem;
}

.curbar {
    position: absolute;
    width: 0;
    height: .2rem;
    left: 0;
    background-color: tomato;
    border-radius: .1rem;
    z-index: 50;
    transition: height linear 100ms;
}
.dot-button .dot {
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: #fff;
    transition: all linear 300ms;
}
.dot-button.focus .dot {
    width: 1.5rem;
    height: 1.5rem;
    transition: all linear 100ms;
}

.dot-button.focus + .curbar {
    height: .4rem;
    transition: height linear 100ms;
}